<?php
/**
 * 如果没有深入了解过引擎实现，该函数显示的 refcount 值可能会令人惊讶。

Zend 引擎使用引用计数来实现两个不同的目的：
222

•使用叫做"写时复制"的技术来优化内存使用，其中拥有相同值的多个变量指向内存中的同一个副本。当其中修改其中一个变量时，它会指向内存中的一个新副本，并且原始副本的引用计数会减少 1。
•跟踪已分配或通过引用传递的变量（参见引用解释）。这个 refcount 存储在单独的 reference zval 上，指向当前值的 zval。这个额外的 zval 目前不会在 debug_zval_dump() 中显示。


因为 debug_zval_dump() 将输入作为普通参数传递，通过值传递，所以将使用写时复制技术来传递它们：而不是复制数据，refcount 将在函数调用的生命周期内增加 1。如果函数在接收参数后修改了它，那么将会进行复制；由于没有修改参数，所以在调用范围内显示的 refcount 会比较高。

 *
 */
$a = "Hello";
debug_zval_dump($a);

$b = "Hello w";
$c = $b . "m";
debug_zval_dump($c);
